package com.ktjy.mapper.storage;

import com.ktjy.pojo.StorageRecord;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface StorageRecordMapper {
    /**
     * 根据商品名称、供货商ID、支付状态查询入库记录表
     * @param goodsName 商品名称
     * @param supplierId 供货商ID
     * @param payStatus 支付状态
     * @return 返回查询列表信息
     */
    public List<StorageRecord> getStorageRecord(@Param("goodsName") String goodsName,@Param("supplierId") Integer supplierId,@Param("payStatus") int payStatus);

    /**
     * 查询结果中添加供货商名称字段
     * @return 返回查询列表信息
     */
    public List<StorageRecord> getStorageSupName();

    /**
     * 使用association元素查询入库记录表-嵌套结果映射
     * @return
     */
    public List<StorageRecord> getStorageSupplier();

    /**
     * 根据供货商ID、支付状态、商品名称(模糊查询)
     * @param supplierId
     * @param payStatus
     * @param goodsName
     * @return
     */
    public List<StorageRecord> getStorageIdStatuName(@Param("supplierId") Integer supplierId,@Param("payStatus") int payStatus,@Param("goodsName") String goodsName);

    /**
     * 查询多个供货商关联的入库单列表数据
     * @param supplierIds
     * @return
     */
    public List<StorageRecord> getStorageRecordId(Integer[] supplierIds);

    public List<StorageRecord> getStorageRecordList(List<Integer> supplierIds);

    public List<StorageRecord> getStoageRecordMap(Map<String, Object> Codemap);

    public List<StorageRecord> selectPageList(@Param("pageBegin") Integer pageBegin,@Param("pageSize") Integer pageSize);

    /**
     * 新增入库单
     * @param record
     * @return
     */
    public int insertStorageRecord(StorageRecord record);

    /**
     * 修改入库单
     * @param record
     * @return
     */
    public int updateStorageRecord(StorageRecord record);

    /**
     * 查看入库单明细：根据入库单ID
     * @param id
     * @return
     */
    public List<StorageRecord> selectAllDetail(Integer id);

    /**
     * 删除入库表
     * @param id
     * @return
     */
    public int deleteStorageRecord(Integer id);
}
